1. Field of the Invention
The present invention relates to a technique for determining the number of users or client computers which submit transactions to a server program within a specified period of time. More particularly, the present invention relates to a technique for determining whether the number of users or client computers transacting with a server program exceeds the number of licenses issued for the users or client computers. The present invention offers an alternative to existing license management systems for client-server computing environments.
2. Description of the Related Art
Client-server computing environments have become increasingly popular. Typically, these environments are computers networked together which execute a software program which has code resident and executed on both a server computer and one or more client computers. In an attempt to increase productivity, some code (server program) for a software program is stored at a relatively powerful server computer, and other code (client program) for the software program which enables access to the server program is stored at each of multiple client computers. The client computers access the server over a network of some known configuration. Software manufacturers typically license a client-server program so that the customer gets a single server license and a set number of client licenses.
The server license permits the customer/licensee to use the server program on a single server computer and the client licenses permit the customer to use the client program on a certain number of client computers. The customer must purchase a separate license for each computer onto which the client program is installed or may install the client program on a larger number of client computers, but may have only a given number of clients active at a given time. This is dependent on the manufacturer's licensing terms. Thus, a customer who purchases ten licenses for the client program may install the client program on ten computers (or may only have ten clients active at a time) depending on the manufacturer's licensing scheme.
For manufacturers of client-server software, one problem that exists is ensuring that customers comply with the terms of the program licenses and purchase enough licenses to cover the number of computers onto which the client program is installed or on which the client program is active at a given time. Software manufacturers lose billions of dollars each year to software piracy, both intentional and unintentional.
Ongoing licensees of client-server software often find it difficult to determine whether they are complying with the terms of program licenses (are not using more than the permitted number of licenses) or whether they have an excess number of client licenses. Many licensees want to comply, and will purchase any needed additional client licenses if they can easily determine how many licenses they need. On the other hand, the licensees might have too many client licenses. Typically, software is "upgraded" by the manufacturer every year or two. If the licensees had a technique for easily determining the number of client licenses they actually need, they could "upgrade" only the number of client licenses they actually need, rather than the number they previously had. Upgrading only the client licenses they actually need can result in significant cost savings. But determining this number has been difficult.
Software manufacturers have dealt with their problem by devising license management systems to limit the number of client computers that can concurrently transact with the server to the number of licenses purchased for the client program. Such a licensing management system is described in Japanese Patent Application Serial Number JP 8241281 entitled "License management system for client server system--includes utilization permission analysis module to manage demand module and utilization permission information table," which was filed on Sep. 1, 1996 and is assigned to NEC Corp. The licensing management system described in this application includes a server that validates the function of an execution management module which performs processing in response to a down-load demand of a program. Both server and client sides have tables which provide utilization permission information, which the license management system uses to prevent unauthorized use of a license.
Though this and other existing license management systems effectively limit the number of client computers that can transact with the server, use of these license management systems introduces new problems.
License management systems typically use a license server to monitor connections to the server. One problem they introduce is that if the license server is not available or not operating properly, no client programs can transact with the server program. Another problem is that requiring client computers to request a license from the license server before interacting with the server program causes performance degradation.
Still another problem with a license management system is that if the network on which a product runs is reconfigured, a customer must disconnect all client computers transacting with the server program and update all the files related to the license management system. Thus, a product that uses a license management system can be hard to maintain and, when maintenance is required, can mean client users are prevented from running the product.
Accordingly, a need exists for a technique for determining the number of client computers transacting with a server to help ensure that customers comply with the terms of product licenses, but such a technique should not cause performance degradation or require excessive maintenance.